package com.swanclouds.api.account;

import com.swanclouds.common.RestService;
import com.swanclouds.model.account.LdapController;
import com.swanclouds.model.account.LdapControllerResource;
import com.swanclouds.model.account.LdapResource;
import com.swanclouds.model.common.ActionResponse;
import com.swanclouds.model.common.Payload;

import java.util.List;

/**
 * 查询 Ldap 服务资源
 * @author 张立强
 * @version jdk1.8.0
 */
public interface LdapService extends RestService {
    /**
     * 查询 Ldap 服务资源
     * @return this ldap service resource
     */
    LdapResource get();

    /**
     * 查询 Ldap 域控制器集合信息
     * @return Ldap Controller Collection
     */
    LdapControllerResource getLdapControllers();

    /**
     * 查询具体域控制器的信息
     * @param id this Controller id
     * @return this Controller info
     */
    LdapController getController(String id);

    /**
     * 查询具体域控制器列表信息
     * @return this all Controller info
     */
    List<LdapController> list();

    /**
     * 导入Ldap 证书
     * @param payload cert
     * @param id Ldap Controller id
     * @return response
     */
    ActionResponse importCert(Payload payload, String id);

    /**
     * 修改具体域控制器的信息
     * @param ldapController 更新内容
     * @param id the update Ldap Controller id
     * @return this Ldap Controller info
     */
    LdapController updateController(LdapController ldapController, String id);
}
